package maquinavirtual;

import semantic.CodInstrEnum;

public class ClasseTeste {

	public static void main(String[] args) {
//		InstrucoesImpl a = new InstrucoesImpl();
		
//		a.ALI(2);
//		a.REA(1);
//		a.STR(1);
//		a.LDV(1);
//		a.STR(2);
//		a.LDV(2);
//		a.WRT();
//		a.STP();
	
		
		
//		a.ALI(2);
//		a.REA(1);
//		a.STR(1);
//		a.REA(1);
//		a.STR(2);
//		a.LDV(1);
//		a.LDV(2);
//		a.BGR();
//		a.JMF(13);
//		a.LDV(1);
//		a.WRT();
//		a.JMP(15);
//		a.LDV(2);
//		a.WRT();
//		a.STP();
		MaquinaVirtual a = new MaquinaVirtual();
		MaquinaVirtual.areaInstrucoes.put(1, new Object[]{CodInstrEnum.ALI,2});
		MaquinaVirtual.areaInstrucoes.put(2, new Object[]{CodInstrEnum.REA,1});
		MaquinaVirtual.areaInstrucoes.put(3, new Object[]{CodInstrEnum.STR,1});
		MaquinaVirtual.areaInstrucoes.put(4, new Object[]{CodInstrEnum.REA,1});
		MaquinaVirtual.areaInstrucoes.put(5, new Object[]{CodInstrEnum.STR,2});
		MaquinaVirtual.areaInstrucoes.put(6, new Object[]{CodInstrEnum.LDV,1});
		MaquinaVirtual.areaInstrucoes.put(7, new Object[]{CodInstrEnum.LDV,2});
		MaquinaVirtual.areaInstrucoes.put(8, new Object[]{CodInstrEnum.BGR,0});
		MaquinaVirtual.areaInstrucoes.put(9, new Object[]{CodInstrEnum.JMF,13});
		MaquinaVirtual.areaInstrucoes.put(10, new Object[]{CodInstrEnum.LDV,1});
		MaquinaVirtual.areaInstrucoes.put(11, new Object[]{CodInstrEnum.WRT,0});
		MaquinaVirtual.areaInstrucoes.put(12, new Object[]{CodInstrEnum.JMP,15});
		MaquinaVirtual.areaInstrucoes.put(13, new Object[]{CodInstrEnum.LDV,2});
		MaquinaVirtual.areaInstrucoes.put(14, new Object[]{CodInstrEnum.WRT,0});
		MaquinaVirtual.areaInstrucoes.put(15, new Object[]{CodInstrEnum.STP,0});
		a.executar();
		
//		a.ALI(1);
//		a.ALR(1);
//		a.REA(1);
//		a.STR(1);
//		a.LDV(1);
//		a.LDV(1);
//		a.MUL();
//		a.STR(2);
//		a.LDV(2);
//		a.WRT();
//		a.STP();
		
//		a.ALI(1);
//		a.ALR(1);
//		a.REA(1);
//		a.STR(1);
//		a.LDV(1);
//		a.LDR(2.0);
//		a.ADD();
//		a.STR(2);
//		a.LDV(2);
//		a.WRT();
//		a.STP();

//		a.ALI(2);
//		a.REA(1);
//		a.STR(1);
//		a.REA(1);
//		a.STR(2);
//		a.LDV(1);
//		a.LDV(2);
//		a.BGR();
//		a.JMF(13);
//		a.LDV(1);
//		a.WRT();
//		a.JMP(15);
//		a.LDV(2);
//		a.WRT();
//		a.STP();
//		
		
	}
	
	
	
}
